Skip to content

[TT-16977] fix: prevent dep-guard from skipping downstream jobs on push#8077

Merged
buger merged 2 commits intorelease-5.12.1from
fix/dep-guard-skip-release-5.12.1
Apr 17, 2026
Merged

[TT-16977] fix: prevent dep-guard from skipping downstream jobs on push#8077
buger merged 2 commits intorelease-5.12.1from
fix/dep-guard-skip-release-5.12.1

Conversation

@buger
Copy link
Copy Markdown
Member

@buger buger commented Apr 17, 2026

Summary

Remove goreleaser's dependency on dep-guard to prevent GitHub Actions' transitive skip propagation from skipping all test jobs on push/tag events.

dep-guard still gates PR merges via the aggregator job.

Root cause

dep-guard has if: github.event_name == 'pull_request' → skipped on push → goreleaser depends on it → all downstream jobs transitively skipped.

Test plan

  • Push to release branch triggers all test jobs (not skipped)
  • PR still runs dep-guard and gates merge via aggregator

🤖 Generated with Claude Code

dep-guard only runs on PRs, causing GitHub Actions to transitively
skip all downstream jobs (api-tests, release-tests, upgrade-deb, etc.)
on push/tag events. Fix by making goreleaser independent of dep-guard
and moving the dep-guard gate to the PR aggregator instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@buger buger requested a review from a team as a code owner April 17, 2026 08:13
@github-actions
Copy link
Copy Markdown
Contributor

API Changes

no api changes detected

@probelabs
Copy link
Copy Markdown
Contributor

probelabs Bot commented Apr 17, 2026

This PR fixes a critical flaw in the release.yml workflow where essential CI jobs were being skipped on push and tag events. The root cause was the goreleaser job's dependency on dep-guard, which is configured to run only on pull_request events. This caused dep-guard to be skipped on push, leading to a chain reaction that skipped goreleaser and all of its downstream test and build jobs.

The fix decouples goreleaser from dep-guard in the main execution path. To preserve the dependency check for pull requests, the dep-guard job is now a dependency of the aggregator job, which runs only on pull requests. Additionally, the if conditions on several downstream jobs have been strengthened to ensure they only run if their dependencies have succeeded, making the workflow more robust.

Files Changed Analysis

  • .github/workflows/release.yml: The sole file modified. The changes involve adjusting job dependencies and conditional logic to ensure the CI pipeline executes correctly for both push and pull_request events.

Architecture & Impact Assessment

  • What this PR accomplishes: It ensures that the full suite of CI tests and builds runs on push events to release branches, preventing untested code from being deployed.

  • Key technical changes introduced:

    1. The goreleaser job no longer needs: [dep-guard].
    2. The aggregator job now includes dep-guard in its needs list, preserving the dependency check for pull requests.
    3. Downstream jobs now have more explicit if conditions (e.g., !cancelled() && needs.goreleaser.result == 'success') to prevent execution when upstream jobs fail or are skipped.
  • Affected system components: The change is strictly limited to the GitHub Actions CI/CD pipeline defined in release.yml. No application code is altered.

  • Workflow Visualization:

    Before (push event):

graph TD
A[dep-guard] --|"skipped (not a PR)"|--> B[goreleaser]
B --|"transitively skipped"|--> C[test-controller-api]
B --|"transitively skipped"|--> D[...other jobs]


  **After (`push` event):**
  ```mermaid
graph TD
    subgraph "Main Workflow (runs on push)"
      A[goreleaser] --> C[test-controller-api]
      A --> D[...other jobs]
    end

    subgraph PR-only Gate
      B[dep-guard] --|runs only on PR|--> E[aggregator]
    end

Scope Discovery & Context Expansion

This change is highly targeted, modifying only the dependency logic within a single workflow file. The broader impact is restoring the reliability of the entire continuous integration process for release branches. By fixing the transitive skip issue, it ensures that all jobs dependent on goreleaser (such as test-controller-api, sbom, release-tests) are executed as intended on every push, safeguarding the release process.

Metadata
  • Review Effort: 1 / 5
  • Primary Label: bug

Powered by Visor from Probelabs

Last updated: 2026-04-17T08:57:32.265Z | Triggered by: pr_updated | Commit: a28630f

💡 TIP: You can chat with Visor using /visor ask <your question>

@probelabs
Copy link
Copy Markdown
Contributor

probelabs Bot commented Apr 17, 2026

✅ Security Check Passed

No security issues found – changes LGTM.

✅ Security Check Passed

No security issues found – changes LGTM.

\n\n

✅ Architecture Check Passed

No architecture issues found – changes LGTM.

✅ Performance Check Passed

No performance issues found – changes LGTM.

✅ Quality Check Passed

No quality issues found – changes LGTM.


Powered by Visor from Probelabs

Last updated: 2026-04-17T08:57:25.389Z | Triggered by: pr_updated | Commit: a28630f

💡 TIP: You can chat with Visor using /visor ask <your question>

Corrected approach: keep goreleaser depending on dep-guard (preserves
PR gating) but add !cancelled() + result checks to all downstream jobs
to prevent transitive skip propagation on push/tag events.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

🚨 Jira Linter Failed

Commit: a28630f
Failed at: 2026-04-17 08:55:49 UTC

The Jira linter failed to validate your PR. Please check the error details below:

🔍 Click to view error details
failed to validate branch and PR title rules: branch name 'fix/dep-guard-skip-release-5.12.1' must contain a valid Jira ticket ID (e.g., ABC-123)

Next Steps

  • Ensure your branch name contains a valid Jira ticket ID (e.g., ABC-123)
  • Verify your PR title matches the branch's Jira ticket ID
  • Check that the Jira ticket exists and is accessible

This comment will be automatically deleted once the linter passes.

@buger buger merged commit 1e56951 into release-5.12.1 Apr 17, 2026
19 of 20 checks passed
@buger buger deleted the fix/dep-guard-skip-release-5.12.1 branch April 17, 2026 09:01
@probelabs probelabs Bot changed the title fix: prevent dep-guard from skipping downstream jobs on push [TT-16977] fix: prevent dep-guard from skipping downstream jobs on push Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant